//***************************************************************************************
// MediaFrame is an Open Source streaming media platform in Java 
// which provides a fast, easy to implement and extremely small applet 
// that enables to view your audio/video content without having 
// to rely on external player applications or bulky plug-ins.
//
//--------------------------------------------------------------------------------------
//
// We changed a lot of code and added a lot of functionality.
// This includes, but not limited to, the following changes:
// 1. The project was renamed to MediaFrame;
// 2. The connection speed detection procedure was added;
// 3. The JavaScript API functions were added;
// 4. The pre and post image support functionality was added;
// 5. The ability to save movie into the local disk was added;
// 6. The inner buffer for a movie file was added;
// 7. The click-through functionality was added;    
// 8. The .zip files support was added;    
// 9. The realtime feedback agent functionality was added.    
// For the full list of the current functionality please visit the following web page:
// http://mediaframe.org/
//    
// 06 Jul 2002 - 19 Dec 2004 Konstantin Belous, Oleg Lebedev
//
//--------------------------------------------------------------------------------------
//
// This program is free software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the Free Software
// Foundation; either version 2 of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
// PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with this
// program; (See "LICENSE.GPL"). If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//
//--------------------------------------------------------------------------------------
//
// If the program runs as Java applet it isn't "interactive" in the sense of the GNU
// General Public License. So paragraph 2c doesn't apply.
//
//**************************************************************************************
package mediaframe.mpeg1.controlpanel;

import mediaframe.mpeg1.MPEG1;
import java.awt.Graphics;

/**
 * The <code>IControlPanel</code> interface provides access to the control panel of the Video Player.
 *
 * @author  Kostya Belous
 * @version 1.0 26.07.2002
 *
 * @see ControlPanel
 *
 */
public interface IControlPanel {
	
	/**
	 * Initialization of the control panel. 
	 * Constructs the buttons (play/pause, mute on/mute off, stop).
	 * Disables the control panel after initialization.
	 *
	 * @param player the reference to the called applet.
	 * @param heigth height of the movie screen.
	 *
	 */
	public void initPanel(MPEG1 player, int heigth);

	/**
	 * Paints the control panel. 
	 *
	 * @param g the graphics context of the video player.
	 *
	 */
	public void paint(Graphics g);

	/**
	 * Sets the mute value. 
	 *
	 * @param mute the mute value.
	 *
	 */
	public void setMute(boolean mute);
	
	/**
	 * Gets mute value. 
	 *
	 * @return the mute value.
	 *
	 */
	public boolean getMute();
	
	/**
	 * Implements "play" action of the control panel. 
	 *
	 */
	public void play();
	
	/**
	 * Implements "stop" action of the control panel. 
	 *
	 */
	public void stop();
	
	/**
	 * Implements "end play" action of the control panel. 
	 *
	 */
	public void endPlay();
	
	/**
	 * Implements "pause" action of the control panel. 
	 *
	 */
	public void pause();

	/**
	 * Implements "disable" action of the control panel. 
	 *
	 */
	public void disablePanel();
}
